home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / dsp / dspgroup / macros.arc / XTOS.ASM < prev   
Encoding:
Assembly Source File  |  1983-11-17  |  1.8 KB  |  24 lines

  1.  
  2. *                                                                               
  3. *DOUBLE TO SINGLE (A TO B)                                                      
  4. *                                                                               
  5. XTOS   $MACRO  A,B                                                              
  6.        $VAR L,L1,L2,L3                                                          
  7.        $ASG '$$LAB' TO L.S                                                      
  8.        $ASG L.SV+3 TO L.SV    GET LABEL                                         
  9.        $ASG L.SV-2 TO L1.V                                                      
  10.        $ASG L.SV-1 TO L2.V                                                      
  11.        $ASG L.SV   TO L3.V                                                      
  12.        LCAC 32767       GET BIGGEST SINGLE                                      
  13.        SUBX :A:         COMPARE :A:                                             
  14.        BGEZ L$:L1.V:    IF :A: >= 32767 THEN                                    
  15.        LCAC 32767       SATURATE AT 32767                                       
  16.        B    L$:L3.V:    JUMP TO DONE                                            
  17. L$:L1.V: LCAC -32768    GET MOST NEG SINGLE                                     
  18.        SUBX :A:         COMPARE :A:                                             
  19.        BLEZ L$:L2.V:    IF :A: <= -32768 THEN                                   
  20.        LCAC -32768      SATURATE AT -32768                                      
  21.        B    L$:L3.V:    JUMP TO DONE                                            
  22. L$:L2.V: LDAX :A:       LOAD :A:                                                
  23. L$:L3.V: SACL :B:,0     RESTORE TO :B:                                          
  24.        $END